﻿#region File and License Information
/*
<File>
	<License>
		Copyright © 2009 - 2017, Daniel Vaughan. All rights reserved.
		This file is part of Calcium (http://calciumsdk.net), 
		which is released under the MIT License.
		See file /Documentation/License.txt for details.
	</License>
	<CreationDate>2010-10-29 17:45:28Z</CreationDate>
</File>
*/
#endregion

using System.Runtime.CompilerServices;
using System.Threading.Tasks;

namespace Outcoder
{
	public interface IMessenger
	{
		void Subscribe(object subscriber);

		void Unsubscribe(object subscriber);

		Task Publish<TEvent>(TEvent eventToPublish,
			bool requireUIThread = false,
			[CallerMemberName]string memberName = null,
			[CallerFilePath]string filePath = null,
			[CallerLineNumber]int lineNumber = 0);
	}
}